予約メールのメッセージフィルターについて (旧題:Ver.1.33 予約メールのメッセージフィルター)

予約システムから送信するメールには次の5種類があります。

  • 予約メール
    予約フォームを送信して予約を受け付けたときに自動送信する
  • キャンセルメール
    キャンセルを受け付けたときに自動送信する
  • 予約完了メール
    管理者が予約リストから予約者へ予約確認メールを送信する
  • 予約通知メール
    CRON機能によりリマインダーのメールを自動送信する
  • ユーザー登録メール
    フロントエンドからユーザー登録フォームを利用してユーザー登録したとき送信する

本節は上記「予約メール」の送信前に設定されているメッセージフィルターについて、詳細を説明します。「メッセージフィルターとは」の説明は以下のページを参照してください。

メッセージフィルター

予約メール送信前に設定されているメッセージフィルターは、本システムのメール送信で利用するWordPressの「wp_mail()」に対して、「wp_mail()」に渡すパラメータの内容を変更する方法として利用します。

wp_mail()のパラメータと5つのメッセージフィルター

wp_mail()の説明は次のURLにあります。

wp_mail($to, $subject, $message, $headers, $attachements)

メッセージフィルターはパラメータ「$subject、$message、$headers、$attachements」に対して、内容を変更することができます。以下メッセージフィルターの一覧です。

  • mtssb_mail_booking_subject
  • mtssb_mail_booking_header
  • mtssb_mail_booking_footer
  • mtssb_mail_booking_from
  • mtssb_mail_booking_attachments

メッセージフィルターの引数と使い方

メッセージフィルター関数へ、2つの引数を渡します。1つは元の内容、もう1つは下記の配列で、予約品目のIDと送信先コードです。

$fParams = ['article_id' => xx, 'receiver' => yy]

送信先コードは次の通りです。

  • client
    予約者へ送信するメール
  • admin
    管理者へ送信するメール
  • mobile
    携帯電話へ送信するメール
  • article
    予約品目に設定されている送信先へ送信するメール

予約の件名を変更したい場合、用意するメッセージフィルター関数は次のようにします(プログラムはサンプルです)。リターン値がwp_mail()の$subjectに指定されます。

add_filter('mtssb_mail_booking_subject', 'mail_booking_subject', 10, 2);

function mail_booking_subject($subject, $fParams)
{
    return '件名の書き換え内容';
}

mtssb_mail_booking_headerとmtssb_mail_booking_footerについて

予約メールの本文は、「前文」、「予約内容」、「後文」を繋ぎ合わせてwp_mail()の$messageに渡します。

この前文と後文は管理画面の各種設定で指定したものが元になります。予約品目によって内容を変更したい場合、この「前文」や「後文」を書き換えることになります。

変更する文章には、「メール文の代替変数」を含めることができます。